package com.yang.demo.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.jaeger.library.StatusBarUtil;
import com.yang.demo.MainActivity;
import com.yang.demo.R;
import com.yang.demo.greendao.DaoManager;
import com.yang.demo.util.Loader;
import com.yang.demo.view.UserModel;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

/**
 * Created by yangwenwen on 2018/4/14.
 */
public class RegisterActivity extends AppCompatActivity {

    @BindView(R.id.et_name)
    EditText etName;
    @BindView(R.id.et_account)
    EditText etAccount;
    @BindView(R.id.et_pwd)
    EditText etPwd;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_regist);
        ButterKnife.bind(this);
        //以下两行代码是为了改变状态栏
        StatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.main_blue), 50);
        StatusBarUtil.setDarkMode(this);
    }

    @OnClick({R.id.iv_back, R.id.tv_register})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.iv_back:
                //点击了返回键
                finish();
                break;
            case R.id.tv_register:
                if (TextUtils.isEmpty(etName.getText().toString())) {
                    //判断是否设置了用户名
                    Toast.makeText(this, "请设置用户名", Toast.LENGTH_LONG).show();
                    return;
                }
                if (TextUtils.isEmpty(etAccount.getText().toString())) {
                    //判断是否设置了账号
                    Toast.makeText(this, "请设置账号", Toast.LENGTH_LONG).show();
                    return;
                }
                if (TextUtils.isEmpty(etPwd.getText().toString())) {
                    //判断是否设置了密码
                    Toast.makeText(this, "请设置密码", Toast.LENGTH_LONG).show();
                    return;
                }

                //取出数据库里的用户列表
                List<UserModel> userList = DaoManager.getInstance().getUserList();
                //如果用户列表为null或没有数据，则没有注册用户，这时直接走注册流程
                if (userList == null || userList.size() == 0) {
                    //未注册，将用户信息写入数据库的用户列表
                    UserModel model = new UserModel(etName.getText().toString(), etAccount.getText().toString(),
                            etPwd.getText().toString());
                    DaoManager.getInstance().addUser(model);
                    //提示告知用户注册成功，并跳转回到登录页
                    Toast.makeText(this, "注册成功", Toast.LENGTH_LONG).show();
                    finish();
                } else {
                    //如果用户列表不为空，这时需要进行账户排查，验证设置的账号是否进行过注册
                    //设置一个tag，用于进行账户排查时做一个标志
                    int tag = 0;
                    for (int i = 0; i < userList.size(); i++) {
                        //for循环对比账户
                        if (etAccount.getText().toString().equals(userList.get(i).getAccount())) {
                            //如果存在相同的账户，将tag设置为1，表示该账号已被注册
                            tag = 1;
                        }
                    }
                    //for循环结束之后，以为排查结束，这时通过tag判断账号是否进行过注册
                    if (tag == 1) {
                        //已注册，提示告知用户
                        Toast.makeText(this, "账号已存在", Toast.LENGTH_LONG).show();

                    } else {
                        //未注册，将用户信息写入数据库的用户列表
                        UserModel model = new UserModel(etName.getText().toString(), etAccount.getText().toString(),
                                etPwd.getText().toString());
                        DaoManager.getInstance().addUser(model);
                        //提示告知用户注册成功，并跳转回到登录页
                        Toast.makeText(this, "注册成功", Toast.LENGTH_LONG).show();
                        finish();
                    }
                }

                break;
        }
    }
}
